/**
 * 字符串替换
 *
 * 描述
 * 请你实现一个简单的字符串替换函数。原串中需要替换的占位符为"%s",请按照参数列表的顺序一一替换占位符。
 * 若参数列表的字符数大于占位符个数。则将剩下的参数字符添加到字符串的结尾。
 * 给定一个字符串A，同时给定它的长度n及参数字符数组arg，请返回替换后的字符串。保证参数个数大于等于占位符个数。
 * 保证原串由大小写英文字母组成，同时长度小于等于500。
 */

/**
 * 暴力遍历就可以了
 * 时间复杂度 : O(n)
 * 空间复杂度 : O(n)
 */

public class Main {
    public String formatString(String A, int n, char[] arg, int m) {

        StringBuffer res = new StringBuffer();

        // 记录 arg 已经到哪里了
        int k = 0;

        for (int i = 0; i < A.length(); i++) {

            if (A.charAt(i) == '%') {

                i++;

                if (i < A.length() && A.charAt(i) == 's') {

                    res.append(arg[k++]);
                } else {

                    res.append("%");
                    res.append(A.charAt(i));
                }
            } else {

                res.append(A.charAt(i));
            }
        }

        // 把没有填进去的全都填入最后面
        while (k < m) {
            res.append(arg[k++]);
        }

        // 打印结果
        return res.toString();
    }
}